taking a situation as input and returning a proposed course of action